Concurrent web based multi-task support for a standalone system or for an central controlled virtual system

ABSTRACT

Supporting multiple users concurrent login and providing each user to be able to perform multiple concurrent tasks in his/her computer work environment are very critical to modern computer user working environment, which is running on top of modem operating system, due to it greatly improved machine efficiency and user&#39;s productivities. Therefore, supporting multiple users concurrent login CCDSVM through each user&#39;s web-browser and providing each user to be able to perform multiple concurrent tasks in his/her single login web-browser over resources of CCDSVM will qualify the conventional web-browser to be a new means of a computer user working environment at the Internet era. 
     To support one or multiple users to perform multiple concurrent tasks within a single web-browser for system like CCDSVM, the software modules on systems of CCDSVM require to work and communicate together to collect resource information of CCDSVM, and to display them in each user&#39;s web-browser, and further to allow each user selecting the resource, initiating and submitting the tasks from said single web-browser; the software of CCDSVM needs to store each received task information into a user space task list and further to distribute each task to the target system for executing. In addition, software of CCDSVM needs to obtain associated conventional or non-conventional locks for each task and properly release these acquired locks one at a time in the order during each tasks executing up to the point when the tasks are finished.

CROSS-REFERENCE RELATED TO APPLICATION(S)

This application is continuation application of U.S. application Ser.No. 10/713,904 entitled “Concurrent Web Based Multi-Task Support forControl Management System” and this application also claims the benefitof priority of U.S. Provisional Application 60/401,238 in the name ofthe same inventor filed on Aug. 6, 2002.

FIELD OF THE INVENTION

The present invention generally relates to computer communicationsnetwork. More specifically, the present invention relates to a web basedcentral controlled distributed scalable virtual machine system(“CCDSVM”).

BACKGROUND OF THE INVENTION

A typical computer system provides a computer user work environment toend users, wherein the computer user work environment runs on top of ageneric computer operating system. With this work environment, an enduser can login to the system and. setup various computer resource accesscontrols for each individual preference based on his or her permittedrole. The users, for example, can configure computer resources such asdisks, networks, file systems, file folder/directory and systems, files,one or more CPU, memory, the connected systems on the network, displayequipments, keyboard mouse, structured or non-structured data andothers.

Various computer tasks & operations can be executed by the computerapplication, and the computer operating system of the system providesthe results of tasks to the end user. Specially, with a generic computeroperating system, this work environment allows multiple concurrent usersand each of them to run multiple concurrent tasks or operationssimultaneously.

The computer user work environment has evolved from paper tape & punchcard environment, command line environment on a native system to window& mouse click environment on a native system in the past. This inventionprovides users a web-based computer user work (operating) environment ontop of generic operating system for a single or multiple computers andto allow user work on one or multiple computer systems through aconventional web-browser.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated into and constitute apart of this specification, illustrate one or more examples ofembodiments and, together with the description of example embodiments,serve to explain the principles and implementations of the embodiments.In the drawings:

FIG. 1 illustrates an example of a simplified multi-tasks support onWeb-console in a simple environment.

FIG. 2 illustrates an example of a simplified multi-tasks support onWeb-console in a CCDSVM environment.

FIG. 3 illustrates an example of basic data flow between a web-consoleon a Console system and the console supporting software in a controlmanagement environment.

FIG. 4 illustrates an example of a task and an operation processing flowchart in a CCDSVM environment. FIG. 4B illustrates another example of atask and an operation processing flow chart in a CCDSVM environment.

FIG. 5 illustrates a user space task list, which includes an abstractionof data structure for multiple simultaneous concurrent tasks andoperations control in CCDSVM environment.

FIG. 6 illustrates a layered CCDSVM structure.

FIG. 7, and 7B illustrate typical hardware components including acontrol management system, System Units, and Console systems, whichconsist one or more CPU, memory, secondary storage such as disks ormemory sticks, the network interface cards, and display components suchas monitor or others. These components are connected through buses.

FIG. 8 illustrates another variation of CCDSVM configuration, where eachSystem Units may also configured with a web browser and/or a web serversoftware so that it is capable to direct communication with web browseron client system, console system, control system or on System Unitsitself.

BRIEF DESCRIPTION OF THIS INVENTION

The traditional web server or other server (3 of FIG. 1) may supportusers from a web browser (8 of FIG. 1) somewhere on the net to performsome tasks, which could get quick responses and could be finished in ashort period of time such as checking web server's status or getting aserver's other information, et cetera. However, it may not support wellfor multiple simultaneous concurrent tasks or operations from the sameweb-browser, especially when these tasks are time consuming to finish.

For example, creating a 60 GB file system on the server, or configuringa raid controller on that server (3 of FIG. 1) is a large (and timeconsuming) task. Because these tasks often take a large amount of timeand will hang in the web-console on Console system (1 of FIG. 1), as aresult, no other tasks could be performed parallel from the sameweb-console at the same time. In addition, traditional consolesupporting software (5 of FIG. 1) does not work for a more complicatedenvironment such as in a CCDSVM environment (FIG. 2).

To solve these problems and effectively to support multiple simultaneousconcurrent tasks on a web-console for both simple and CCDSVMenvironment, the console supporting software (5 of FIG. 1) needs toinclude additional control management software modules (4 of FIG. 2) andothers. The control management software module shall communicate andcontrol all System Units (3 of FIG. 2). Also, each System Units (3 ofFIG. 2) needs service software modules (8 of FIG. 2) to communicate withcontrol management software (4 of FIG. 2) of console support software (6of FIG. 2).

In addition, a user space task list (FIG. 5) could be used together withconventional or non-conventional locks to support all multiplesimultaneous concurrent tasks and operations. With this invention, themulti-tasks support on the web-console in a simple environment (FIG. 1)has been viewed as a special case of such support in a CCDSVMenvironment (FIG. 2). The CCDSVM (FIG. 2) will be degenerated into asimple server environment (FIG. 1) if multiple System Units (3 of FIG.2) do not present.

These and other features, aspects and advantages of the presentinvention will become understood with reference to the followingdescription, appended claims and accompanying figures set forth below.

DETAILED DESCRIPTION OF THE INVENTION

CCDSVM is configured to provide a Control system to control a group ofsystems and provide distributed services to at least one client systemover an Intranet, an Internet as well as a LAN environment. The softwarecomponents of CCDSVM form the virtual operating environment. When aserver provides software support, which allows a user access the serverand performs system operations on this server, a web-browser on a system(such as a desktop, laptop, server, PDA, or cell phone), which can beanywhere on net, this special web-browser of that system becomes aweb-console. With CCDSVM, a permitted user from web-console should beable to access and operate entire CCDSVM.

To simplify the discussion, the term of thread and process are roughlyused without differentiation between them in this invention regardlessthe very restricted definition of the thread and process in computerscience field. Here both thread and process are basically referred as asequence of instructions based on a piece of program code, which startsto be executed by a computer system step by step and further to carryout a computer task.

Lock is a mechanism that allows a thread to look a computer resource forits own use and prevents other threads, which attempt to manipulate thissame resource at the same time, from access to the same computerresource. There is conventional lock, which can be acquired and releasedby the same thread. The conventional lock mechanisms have used by mostsoftware developer crossing the software industry. The lock described inthis invention may or may not be a conventional one. Thenon-conventional lock mechanisms created in this invention can beacquired by one thread and may be released by same thread or by anotherthread. Therefore, it is non-conventional lock serving threads on thenative system. Each lock may be associated with a timer in case a threador process need to be retreated from acquiring a lock to avoid thepossibility of waiting too long or waiting forever if deadlock accurse.

FIG. 1 illustrates an example of a web-console scheme in a simpleenvironment, which includes a Console system 1, a server 3, and a net 2.Console system 1 further includes a web-console 8 having a browser.Server 3 includes a web-console, a web server software 4, and a consolesupport software 5, wherein said console support software 5 furtherincludes web server interface 6 and other service modules 7. It shouldbe noted that the same reference indicators will be used throughout thedrawings and the following description to refer to the same or likeitems.

Console system (1), from which a user is able to perform system tasks oroperations for server (3) through web-console (browser) (8) of Consolesystem (1) can be any system on the net 2, such as a server, a desktopPC, a laptop PC, a hand held PDA, or a cell phone. The web browser (8)may be commercially available software from any vendor or a proprietarysoftware companies. The web browser 8 is able to handle the web protocolsuch as HTTP. The Console system 1 may also include other softwaremodules (9), which may be implemented with any suitable programminglanguages such as C, C++, Java, XML, et cetera. Other software modules 9are used to communicate between said server (3) and said Console system1 using IP, non-IP or any suitable protocols for receiving and/orsending data between said Console system 1 and said server (3).

Server (3) could be a web server or any kind of system with web serversoftware includes web server software (4) and console supportingsoftware (5). The console supporting software (5) includes web serverinterface (6) and other services software modules (7), wherein saidother services software 7 operates on native server system. The webserver software (4) may be commercially available or proprietarysoftware, which is able to accept and handle the web protocol such asHTTP. A native web-console (browser) (8), therefore, enables a user toaccess and operate the computer locally.

Net 2 represents a network infrastructure such as Internet and intranet,LAN with all kinds of related network equipment and media such asswitch/router, different kind of cables and wireless media

FIG. 2 shows an example simplified block diagram of an embodiment ofCCDSVM. The system includes Console systems 1, a Control system 2,System Units 3, a net1 11, a net2 12, and client systems 10. Consolesystems (1) could be any system on the net such as a server, a desktopPC, a laptop PC, a hand held PDA, or a cell phone. A web-console (webbrowser) (9) can be used to access and operate the entire CCDSVM. Theweb browser (9) may be commercially available software from any vendoror proprietary software company. The web browser 9 is able to handle webprotocol such as HTTP. A difference between a web-console 9 and a webbrowser is that the web-console 9 is capable of accessing systeminformation and performing system operation in the CCDSVM environment.

The Console system may also include other software modules (13), whichmay be implemented with any suitable programming languages such as C,C++, Java, XML etc. These software modules may be used to facilitatecommunications between Control system (2) and Console systems 1 usingIP, non-IP or any suitable protocols for receiving or sending databetween Console system and Control system (2). To support anon-web-based networked console, the software used by the web console 9is configured to handle protocol other than web protocol (HTTP) andcommunicate with console supporting software on Control system.

Control system (2) could be any system on the net such as a server, adesktop PC, a laptop PC, or others. The Control system includes webserver software (7) and console supporting software (6). The consolesupporting software (6) includes web server interface software modules(5) and control management software modules (4). It should be noted thatthe console supporting software 6 may include others service softwaremodules. It may also have native Web browser used as a web-console (9)of native system. The web server software (7) discussed earlier could becommercially available software from a major vendor or other proprietarysoftware company. Both console support software (6) and web serversoftware (7) are able to accept and handle the web protocol such asHTTP, HTTPS and so forth. The web server software (7) sends data to andreceives data from web-console 9 of Console systems 1.

The console supporting software (6) can be implemented with any suitablelanguages such as C, C++, Java, HTML, XML, WML, Javascript, and soforth, or even implemented by using a combination of different languagesas long as it provides the features and functionality described in thisinvention. That means it is language independent. In addition, thecommunication protocol used between console support software (6) andservice software modules (8) of System Units (3) could be any suitableprotocol such IP based, or non-IP based or other protocols. Consolesupport software (6) communicate and manage one or multiple System Units(3) and collect resource information on Control system or one or moreSystem Units; Said resource information may be organized for user toeasy select resource and submit tasks from web browser such as in a formof multi-layered sub-folder tree, where each node may be associated andbound with graphic image and operation menu.

There may be several fixed threads being created based on controlmanagement software modules (4), and each fixed threads may create oneor multiple child threads for perform one or multiple tasks inbackground. There are may be various number of threads that are createdbased on web server interface software modules (5) for each tasks beinginitiated by a user at the web-console 9. All of these threads may becommunicated with each other through inter-process communication bothbased on web interface modules (5) and control management module (4),which are simply referred to the thread of console supporting software(6). However, to simplify the discussion, they may be just referred toconsole supporting software (6) without mentioning the thread at all.

If there is a need to support a less effective non-web-based networkedconsole, there is no need for web server software (7) and web serverinterfacing software module (5) to be employed. Instead, an additionalnetwork software module is required and it could be implemented with anysuitable programming language and any suitable communication protocolother than web protocol (HTTP). This network software module cancommunicate with networked console software on Console system (1) vianetwork link and further to communicate with the rest of consolesupporting software (6) via inter-process communication mechanism.

System Units (3) could be any system on the net such as a server, adesktop PC, a laptop PC, a hand held PDA, or a cell phone, anyoperational system, a video server, a web server, a storage block dataserver (SAN unit), a video monitoring device, and so forth. The SystemUnits contains service software modules (8), which are capable ofcommunicating with the outside world. For example, service modules 8 isused to communicate with control management software (4) of Controlsystem (2) for carrying out the tasks, or to communicate with clients 10of CCDSVM for delivering the services to them, or to communicate withanother System Units (3) for transferring the data. The service softwaremodules could be implemented with any suitable programming languagessuch as C, C++, Java, or others. It should be noted that thecommunication protocol could be any suitable protocol such as IP(Internet Protocol) base or other non-IP based protocol.

The net1 11 represents any kind of communication link between Controlsystem (2) and web-console (9) or client system (10). The link could bean infrastructure of internet, intranet, LAN, or others. The link coulduse connection media such as cable (Ethernet, optical Fiber, and other),wireless media, bus. The link could also use communication equipmentsuch as switches, routers, and/or adapters.

The net2 (12) represents any kind of communication link between Controlsystem (2) and the System Units (3) or web-consoles (9). The link couldbe an infrastructure of internet, intranet, LAN, or other. The linkcould use connection media such as cable (Ethernet, optical Fiber, andother), wireless media, bus, and could use communication equipment suchswitch/routers/adapter etc.

Client systems (10) are not part of CCDSVM but they may requestsservices from CCDSVM, as shown in FIG. 2 via web browser. Client systemwill be treated same as Console system in present invention withoutdifferentiation.

FIG. 3 illustrates a simplified data flow between web-console (9 of FIG.2) on Console system (1 of FIG. 2) and the console supporting software(6 of FIG. 2) on Control system (2 of FIG. 2). Data travels fromweb-console (9 of FIG. 2) to console supporting software (6 of FIG. 2)includes two steps. First, data goes from web-console (9 of FIG. 2) toweb server software (7 of FIG. 2) via net (11 or 12 of FIG. 2). Second,console supporting software (6 of FIG. 2) gets data from web serversoftware (7 of FIG. 2) via inter-process communication. To simplify thediscussion of this invention, this data traveling path will simply referto as console supporting software (6 of FIG. 2) getting data fromweb-console (9 of FIG. 2) or refer to as the data being sent fromweb-console (9 of FIG. 2) to the console supporting software (6 of FIG.2).

Data travels from console supporting software (6 of FIG. 2) toweb-console (9 of FIG. 2) includes two reverse steps. First, the webserver software (7 of FIG. 2) gets data from console supporting software(6 of FIG. 2) via inter-process communication. Second, the web serversoftware (7 of FIG. 2) sends data to web-console (9 of FIG. 2) via net(11 or 12 of FIG. 2). To simplify the rest discussion in this invention,this reverse data traveling will refer to as data being sent fromconsole supporting software (6 of FIG. 2) to web-console (9 of FIG. 2)or refer to as web-console (9 of FIG. 2) gets data from consolesupporting software (6 of FIG. 2). The terms data, information, andinformation on a web page will be used interchangeably herein.

FIG. 4 shows one embodiment of the basic tasks and operation processingflow chart, which initiated from web-console. FIG. 4B illustratedanother embodiment of a example such that a user try to initiate twotasks from a web browser, Task-1 for transmit a 4 GB data file fromcontrol system to one of System Units, and another Task-2 is to delete afile on control system.

At act 15 of FIG. 4, the task-1 being submitted first; at act 16, webinterface module (5) of control system (2) of FIG. 2 receives this taskinformation passed from web server (7) of control system; at act 17, webinterface creates a web interface thread-1 to handle this task and waitfor a lock at act 18. Once obtains a lock at act 19, said web interfacethread-1 stores the task into a valid entry on user space task list asact 19, and the entry becomes invalid as act 20, and further may providea initial response feedback encoded with status information back touser's web browser as act 22, released lock immediately as act 21, passthe task to control management software modules (4) of control system(2) as act 23, and exit as act 24. Due to the entire process from act 16to act 21 may only take less than a millisecond, therefore, the userwill feel that without any waiting he/she can submit the task-2immediately regardless if said task-1 is finished or not.

At act 25 of FIG. 4, control management module (4) created one ormultiple control management threads to actually execute said task-1together with one or multiple locks for protection, where said one ormultiple control management threads will run in background untilfinishing the task as act 26. Upon the finishing said task1, the entrystored with task-1 information will be marked as valid again as act 27,provide result feedback as act 28, and finally said one or multiplecontrol management threads exited as act 29.

With this specific example, due to task-1 will take time to finish run,the task-2 and many be one or more other tasks could run concurrently ina same single web browser with task-1 in similar steps. Also, saidresult feedback may provide the status of the result, where the statuscould be a point to the location of deposited result or the actualresult, or a status notice of success or failure of the task. With thisinvention, user at web browser do not have to wait the task result,therefore, the web browser is never blocked or freezing, and user canrun one or multiple concurrent tasks within a single web browser. Inaddition said response feedback and result feedback are encoded into aweb page with any suitable programming languages such as C, C++, Java,XML, HTML, WML, Javascript and so forth, and may also encoded andassociated with one or more operation menu.

FIG. 5 shows an embodiment of a user space task list for all users. Eachslot on the user space task list can be used to hold task informationrelating to a task issued from Web-console and task information will becleared upon task finished to run in either case of success or failed.In another embodiment each user login session might have a per-userbased user space task list and said console support software modules ofControl station manages all per-user based user space task list.

FIG. 6 illustrates a layered CCDSVM environment, which provides aflexible scalability mechanism to efficiently support thousands ofheterogeneous System Units. With this structure, a Control system (2 ofFIG. 2), which is situated at middle layer 2 becomes a System Units ofthe up layer1.

FIG. 7 illustrates typical hardware components including a controlmanagement system, System Units, and Console systems. It consists of oneor more CPU, memory, secondary storage such as disks or memory sticks,the network interface cards, and display components such as monitor orothers. These components are connected internally through buses.

The detailed explanation of FIG. 2 will show that how multipleconcurrent tasks can be initiated from a web-console (9 of FIG. 2) andcan be executed either on any one of the System Units (3 of FIG. 2) oron a Control system (2 of FIG. 2) according to this invention.

In one example, a user A at a web-console (9 of FIG. 2) receives anauthentication from the console supporting software (6 of FIG. 2). Inone embodiment, a successfully login on a Control system (3 of FIG. 2)is considered an authentication because it authorizes user A to accessthe system. So that user A has obtained necessary information about allSystem Units (3 of FIG. 2) and Control system (2 of FIG. 2) from consolesupporting software (6 of FIG. 2). When user A initiates a task for aselected target system, which is either a System Units (3 of FIG. 2) orthe Control system (2 of FIG. 2), the task information is transmittedvia net (11 or 12 of FIG. 2) from web-console (9 of FIG. 2) to theconsole support software (6 of FIG. 2) on Control system (2 of FIG. 2).

In addition, said necessary information are encoded into a web page withany suitable programming languages such as C, C++, Java, XML, HTML, WML,Javascript and so forth, and may also encoded and associated with one ormore operation menu. Therefore, users are able to select resource,submit and run tasks for control system or System Units from differentweb browsers at different locations

A thread is created by console support software (6 of FIG. 2) whereinthe thread will serve and carry out this task. The created threadobtains a lock for accessing user space task list, stores the taskinformation into a valid entry on a user space task list (FIG. 5). Thisensures that the multiple tasks can be initiated simultaneously withinthe same web-console (9 of FIG. 2) without delaying, effecting orblocking other potential thread(s).

In addition, multiple web-consoles for one or multiple simultaneousconcurrent users anywhere on the net (11 or 12 of FIG. 2) also can besupported and each task could be executed without time delay. Theobtained locks for this task will be properly released one at a timealong with the task execution up to a point when the task is finallyfinished.

If the total tasks initiated from web-console (9 of FIG. 2) havesucceeded the maximum allowed tasks by console supporting software (6 ofFIG. 2), the initiated task is failed. The locks will be released by thecorresponding thread and the user A on web-console (9 of FIG. 2) isnotified correspondingly via net (11 or 12 of FIG. 2) through an encodedstatus information.

If an existing task is in a stage of changing a resource object on atarget system and if a newly created task will change on the sameresource object on that target system, the newly initiated task may failor may have to wait until the previous task is finished. Further, if atask is failed, the locks associated with the task will be release bythe thread and the user A on the web-console (9 of FIG. 2) will benotified via net (11 or 12 of FIG. 2) by console support software (6 ofFIG. 2)) through an encoded status information.

The credential of executing a specific task on a specific target systemby user A is checked. In addition, the ordinary users' access &operation permissions and credentials are setup by the administrator ofthe system with supervisor user or special privileges. If user A is notpermitted to perform any task on such target system or is not permittedto perform such task on any system, the task execution will fail anduser A will be notified via net (11 or 12 of FIG. 2). Otherwise, thetask will be carried out by the corresponding thread on the targetsystem, which is either a Control system (2 of FIG. 2) or a System Units(3 of FIG. 2). If there is a need, the console supporting software (6 ofFIG. 2) will send the results (or data) back to web-console (9 of FIG.2). When a task is either failed nor succeeded, the threads of consolesupporting software (6 of FIG. 2) will release the locks acquired forthis task.

As matter of the fact, console support software (6) provides a mechanismto allow privileged user from web browser (9) to create user account andprofile for security and authentication after login to Control system(2); and said user security and authentication profile is stored onControl system. The first privileged user can be created duringinstallation of console support software (6) on Control system (2). Inaddition, console support software will provide each login user a webbased computer user work environment, which is a dynamic private workspace, from where each user can locate resource for perform varioustasks.

If the task needs to be executed on the Control system (2 of FIG. 2),the thread created based on console supporting software (6 of FIG. 2)will carry out this task. The threads of console support software (6 ofFIG. 2) also need to determine if they need to create another thread toexecute this task. In one embodiment, If there is a need, another threadwill be created to execute this task in background. Once the task isfinished, the corresponding locks and the corresponding entry of userspace task list will be released by console supporting software (6 ofFIG. 2).

If a task needs to be executed on a System Units (3 of FIG. 2), theconsole supporting software (6 of FIG. 2) will transmit the taskinformation via net2 (12 of FIG. 2) to the service software module (8 ofFIG. 2) of target System Units (3 of FIG. 2). The thread based onservice software module (8 of FIG. 2) of target System Units (3 of FIG.2) will carry out this task. The service software module (8 of FIG. 2)on target System Units (3 of FIG. 2) needs to determine if an additionalthread needs to be created in order to execute such task in background.If there is a need, an additional thread is created to execute thistask. Once the task is finished on the target System Units (3 of FIG.2), the corresponding status of the task execution is transmitted backto the console supporting software (6 of FIG. 2) of the Control system(2 of FIG. 2). Upon receiving the task finished status, the locksassociated with the thread of console support software (6 of FIG. 2) forthat task are released.

Further, as matter of the facts, the console support software of Controlsystem might provide response to each corresponding web browser at anyappropriate time after receiving each said task. In one embodiment, theresponse can be sent immediately after receiving task, in anotherembodiment the response can be sent if detect any fault during executionof a task, in one more embodiment the response can be sent after thetask is finished, and so forth. Also, the response could be either theresult or a status of a task, and the response will be encoded with anysuitable programing languages such as HTML, XML, WML, Javascript, C,C++, Java and so forth without limit. In one embodiment, the statusinformation may indicate where the result is deposited so that said usercan initiate another task to access and view the result. In anotherembodiment, the status may indicate the failure of executing said task.

In one embodiment, said System Units may send encoded status informationor result directly to said user's web browser if System Units hasconfigured with web server software as shown in FIG. 8

The Task Issued From Web-Console

The multiple concurrent tasks issued from a web-console (9 of FIG. 2) bya user could be any of the followings:

a) Move or transmit data such as a multiple gigabytes of file or otherdata in any form from any point or any system to another point or systemwithin CCDSVM (FIG. 2) or access said data or data file. Perform uploadfile from user local system to Control system, and perform download filefrom any system within CCDSVM to user's local system, where the user'sweb browser resides.

b) Configure, partition and assign entire storage system (raid/disk)within CCDSVM (FIG. 2).

c) Setup authentication of specific user from a specific web-console (1of FIG. 2) with certain privilege for entire CCDSVM or for a specificsystem, which could be any System Units (3 of FIG. 2) or a Controlsystem (2 of FIG. 2). Setting up the steps of authentication process forany specific services on one or more specific System Units can also beimplemented. Setup group account with one or multiple users and setupgroup privileges.

d) Monitor and display activities and status for networks, storage,CPUs, processes and threads in CCDSVM.

e) Create file system, file and directory structures, and all otherrelated data file operations on either the control management system (2of FIG. 2) or System Units (3 of FIG. 2).

f) Create, editing, and save documents, and share documents throughnetwork.

g) Organize meeting perform instant post document or withdraw documentin group meeting model or in 1-to-1 model, Create message, send, or savemessage in group meeting model or in 1-to-1 model.

h) And all other kind of tasks and operations, which might be run incommand line user interactive work (operating) environment or nativewindow based user interactive work environment.

It shall be notice that said user security authentication profile isstored in a form of database.

The capability of providing user with the multiple concurrentsimultaneous operations and tasks on web console (9 of FIG. 2) hasindicated that this invention has created a web-based user workenvironment on top of an existing operating system of a single ormultiple computer systems. Further, this is a consistent workingenvironment for a computer system since it allows a user to access exactthe same working environment through the web-console (9 of FIG. 2),which could be a web browser either on a native system or from otherremote systems.

User Login

The user-login mechanism is also supported by the console supportingsoftware (6 of FIG. 2). The web-console (9 of FIG. 2) obtains a loginweb page from the console supporting software (6 of FIG. 2) via the net(11 & 12 of FIG. 2). Once the user provides an account name and apassword for the login page on the web-console (9 of FIG. 2), theauthentication information is sent to the console supporting software (6of FIG. 2) for validation. Upon successful validating the user accountand password information, the console support software (6 of FIG. 2)sends all necessary system information such as IP address to web-console(9 of FIG. 2), which includes the information of Control system (2 ofFIG. 2) and System Units (3 of FIG. 2).

The Maximum Tasks

The maximum multiple concurrent simultaneous tasks that can be initiatedfrom web-consoles are determined by console support software modules (6of FIG. 2), and they are also determined based on the needs and thecapacity of the Control system (2 of FIG. 2). For example, if supportinga user account on control system requires 1.35 MB of memory, a controlsystem having 1 GB memory can roughly support 740 concurrent users.

The Credential Checking

The credential of a user includes the permission to access all orpartial systems, or a single system within CCDSVM. The credentialfurther includes the permission to run all tasks or partial tasks, whichlists the previous section of “The Task Issued From Web-Console”. Italso includes the permission of accessing specific size of storagevolumes. For example, user B may be granted a permission to run tasks onsystems X, Y, and Z. Another user C may be granted a permission to runtasks on entire system in the CCDSVM environment. User C might be allowto get system status on systems X, Y, and Z only while user B allows torun all tasks on systems X, Y, and Z. Each system mentioned here couldbe a Control system or any of System Units. This basically represents atwo-level authentication policy and checking. The first level is thesecurity imposed by the Control system (2 of FIG. 2) and the secondlevel is the security imposed by System Units (3 of FIG. 2).

The Web-Server Interface Software Module

The web-server interfacing software module (5 of FIG. 2) is responsibleto get information from or send information to web server software (7 ofFIG. 2). It also interacts with control management modules (4 of FIG. 2)via inter-process communication and communicates with service module (8of FIG. 2) of System Units (3 of FIG. 2) via net2 (12 of FIG. 2).

The Control Management Software Module

The control management module (4 of FIG. 2) on the Control system (2 ofFIG. 2) is responsible for communicating with System Units (3 of FIG.2). It sends data to or receives data from System Units via net2 (12 ofFIG. 2). It also provides information of System Units (3 of FIG. 2) toweb interface software modules (5 of FIG. 2) of the Control system (2 ofFIG. 2) via an inter-process communication mechanism.

The Layered CCDSVM Structure

To be more efficiently support multiple concurrent tasks over a largernumber of System Units (3 of FIG. 2), the CCDSVM can be organized into amulti-layer structure (FIG. 6). With this layered structure, the CCDSVMcan be sub-divided into different groups. For example, each level-2Control system could function as both Control system (2 of FIG. 2) tothe System Units below it and could function as a System Units (3 ofFIG. 2) for level-1 Control system. Therefore, it must have relatedsoftware modules for both the Control system and System Units.

The present invention has been described in considerable details withreference to certain examples. However, other versions and examples arealso possible, therefore, spirit of this invention shall not be limitedto these examples and/or embodiments.

1. A method and apparatus of providing asynchronous service to one ormultiple concurrent tasks running in a web based user work environmentof a web browser for a Control system in a central controlleddistributed scalable virtual machine (“CCDSVM”) comprises: providingweb-browser on a Control system or on one or multiple Console systems orClient systems and may be on one or multiple System Units over networksuch that from said web-browser end user can access and perform tasksover said Control system via network; providing server software modelson said Control system, which may be a standalone system or may beconnected to and control said one or multiple System Units; instructingserver software of Control system transmitting encoded statusinformation or resources information on Control system and/or may be onone or more System Units to each said web browser and further to bedisplayed in web browser; instructing first web browser transmit firsttask request, which submitted by first user; instructing server softwareof Control system creating a web interface thread to receiving firsttask request, validate first task based on permission, wait to get alock for user space task list, identify a valid entry and depositinformation of first task request into a identified valid entry of auser space task list, mark entry status as invalid; instructing said webinterface thread passing said task to said control manage software ofsaid server software, release said lock and said entry of a user spacetask for corresponding task, and providing a initial response of taskstatus back to corresponding web browser, and then exit; instructingcontrol manage software of Control system acquiring associated locks forfirst task and to create one or multiple control manage threads toexecute first task in background until first task finished; instructingsaid one or multiple control manage threads mark status of correspondingentry on user space task list as valid for first task and releaseassociated locks upon said task finished; instructing said one ormultiple control manage threads of Control system provide response tocorresponding web browse for first requested task, and then exit;
 2. Theclaim 1 further includes: instructing server software of said Controlsystem transmitting encoded status information or resources informationon Control system and/or may be on one or more System Units to eachcorresponding web browser and further to be displayed in web browser;instructing first web browser transmit its second task request, whichsubmitted by first user upon first web browser is free for submit itssecond task request; instructing server software of Control systemcreating another web interface thread to receive second task request,validate second task based on permission, wait to get a lock foraccessing user space task list, identify a valid entry on user spacetask list, deposit information of first task request into a identifiedvalid entry, mark entry status as invalid; instructing said webinterface thread passing said task to said control manage software ofsaid server software, release said lock, and providing a initialresponse of task status back to corresponding said web browser, and thenexit; instructing control manage software of Control system to createone or multiple control manage threads to acquire associated locks forsaid task and execute said second task in background until taskfinished; instructing said one or multiple control management threadsmark status of corresponding entry on user space task list as valid,release associated locks upon said task finished; instructing saidcontrol management threads of Control system provide response tocorresponding web browser, and then exit;
 3. The claim 1 furtherincludes: instructing server software of said Control systemtransmitting encoded status information or resources information ofControl system or one or more System Units to each said web browser andfurther to be displayed in web browser; instructing second web browsertransmit its first task request, which submitted by second user;instructing server software of Control system creating a web interfacethread to receiving first task request of second browser, validate saidfirst task based on permission, wait to get a lock, identify a validentry on user space task list, deposit information of said first taskrequest into an identified valid entry, mark said entry status asinvalid; instructing said web interface thread passing said task to saidcontrol manage software of said server software, release said lock, andproviding a initial response of task status back to corresponding webbrowser, and then exit; instructing control manage software of Controlsystem to create one or multiple control manage threads to acquireassociated locks for said first task and to execute first task inbackground until first task of second browser got finished; instructingsaid one or multiple control manage threads mark status of correspondingentry on user space task list as valid for said first task of secondbrowser and release said associated locks upon task finished;instructing said one or multiple control manage threads of Controlsystem provide response to second web browse for its first requestedtask, and then exit;
 4. The claim 1 further includes: instructing serversoftware of said Control system transmitting encoded status informationor resources information on Control system and/or may be on one or moreSystem Units to each said web browser and further to be displayed in webbrowser; instructing second web browser transmit its second taskrequest, which submitted by second user; instructing server software ofControl system creating a web interface thread to receiving second taskrequest of second browser, validate said second task of second browserbased on permission, wait to get a lock, identify a valid entry on userspace task list, deposit information of said second task request into anidentified valid entry, mark said entry status as invalid; instructingsaid web interface thread passing said second task of second browser tosaid control manage software of said server software, release said lock,and providing a initial response of task status back to second webbrowser, and then exit; instructing control manage software of Controlsystem to create one or multiple control manage threads to acquireassociated locks for said second task and to execute second task ofsecond browser in background until it got finished; instructing said oneor multiple control manage threads mark status of corresponding entry onuser space task list as valid for second task of second browser andrelease associated locks upon task got finished; instructing said one ormultiple control manage threads of Control system provide response tosecond web browse for its second requested task, and then exit;
 5. Theclaim 1 further includes: said server software on said Control systemincluding web browser, web server software, and console supportingsoftware, wherein said console supporting software comprises of webserver interface software modules and control management softwaremodules; said server software on System Units includes service softwaremodules and may also include web server software and web browser;wherein said Control system may control and manage said one or moreSystem Units through communication between said server software ofControl system and said one or more System Units; said Control system,Console system, and System Units, Client system could be a server systemsuch as a web server or a NAS or a video server and so forth, a desktopor a laptop system, or various hand-held communication devices such asPDA or cell phone; said web browser are conventional browser on themarket or proprietary software, which is capable to communicate withother software on any system through communication protocol such as webprotocols of HTTP and any suitable protocols; and said network isInternet, Intranet, or LAN infrastructure; and said server software andweb browser being organized and operated to provide a web based computeruser work (operating) environment for a single standalone system or fora virtualized system with multiple system.
 6. The claim 1 wherein saidinstructing server software of said Control system transmitting encodedstatus information or resources information of Control system or one ormore System Units to each said web browser and further to be displayedin web browser further includes: said encoded status or resourceinformation are encoded with HTML, XML, Javascript, and may include naysuitable C, C++, Java programming languages in a form of web page; saidencoded web page may also include graphic image and operation menuassociated with said resource information or status information; saidstatus information could be status of user space task, status of threadsand processes on system, and status of system resources; wherein saidresources information are CPU, memory, mess storage devices, networkingdevices, and various different devices, file systems, file and folders,files, user authentication profiles,
 7. The claim 1 wherein said taskfurther includes: said tasks could be any of the following: moving(accessing) or transmitting data such as a multiple Gig-bytes data filebetween any two locations on a target system or crossing two targetsystems; wherein said target systems can either be said a System or oneor multiple System Units; configuring entire resources on said a targetsystem; configuring, partitioning, and assigning the entire storagesystem on said a target; setting up authentication of a specific userfrom a specific web browser with certain privileges for said targetsystem; setting up authentication for a client to obtain services ofsaid a target system; monitoring and displaying network, storage, CPU,processes and thread activities and status for said a target system; andcreating and mounting a file system, file and directory structures, andperforming all related data file operations on said a target system; andperforming tasks that are compatible to tasks in a regular nativecomputer user work environment.
 8. The claim 1 wherein said instructingserver software of Control system creating a web interface thread toreceiving first task request, validate first task based on permission,wait to get a lock, identify a valid entry on user space task list,deposit information of first task request into a identified valid entry,mark entry status as invalid includes: wherein said task permission maybe based on created one or multiple users' security profile and mayrequire said one or multiple end users login to said Control system fromsaid web browser; wherein said user security profile may specify an enduser from where to access said Control system, what resources on Controlsystem and/or may be on one or more System Units can be accessed, andwhat type of tasks can be performed on what systems; wherein said one ormultiple users may login to said Control system concurrently from theirown web browser, wherein said login user were validated according touser account name and password; wherein said each login user may performone or multiple said tasks concurrently within a his/her own webbrowser; and said permission may also include permission for massiveusers on Internet without requirement of login with user account andpassword.
 9. The claim 1 wherein said lock includes: if a thread orprocess need to wait to get a lock further includes that a timer may besetup to associated web interface thread and if the pre-setup timeexpired, said thread or process may return a status to said user andexit; said lock could be conventional lock or non-conventional lock,wherein conventional lock acquired by a thread and will be released bysame thread, wherein non-conventional lock may acquired by one thread orprocess and be released by other thread or process.
 10. The claim 1wherein said instructing control manage software of Control system tocreate one or multiple control manage threads to acquire associatedlocks for said second task and to execute second task of second browseruntil it is finished further includes: if said task is for one or moreSystem Units, which controlled by Control system, said control managethread of Control system transmit task information to service softwareof said one or multiple System Units and said task to be executed onsaid System Units, wherein each System Units will create one or morethreads to acquire associated locks, execute tasks, and provide responseto either control manage software of Control system or directly to saidweb browser after task is finished; wherein said response may be astatus of task executing or a actual result of task executing, whereinsaid status may tell whether the task is success or not, or provide alocation of the task result; If task is for said Control system, saidtask to be executed on said Control system.
 11. The claim 1 wherein saidinstructing said one or multiple control manage threads of Controlsystem provide response to corresponding web browse for first requestedtask, and then exit further includes: said response could be a status ofsaid task or could be the actual result of said task; wherein saidstatus of task could include a indication of whether said task issuccess or not, or could be a point to a location of actual result of atask execution; said response is encoded into a web page with anysuitable programming language such HTML, XML, WML, C, C++, Java,Javascript and so forth.
 12. A computer system providing asynchronousservice to one or multiple concurrent tasks running in a web basedcomputer user working environment (“WCUWE”) in a web browser for aControl system comprises: Web browser on a Control system or on one ormore Console system or one or more Client system, or may be on one ormore System Units, wherein from web browser end user able to accessControl system or said System Units via network; wherein Control systemmay communicate, control, and manage said one or more System Units;wherein Control system, which could be a standalone system or mayconnect and control one or multiple said System Units, configured withsoftware modules of a web browser, web server software and consolesupporting software, wherein said console supporting software comprisesof web server interface software modules and control management softwaremodules; wherein said System Units configured with services softwaremodules; wherein said software modules of said Control system provideone or multiple said web-browser a web based computer user work(operating) environment (“WCUWE”) of Control system; wherein said WCUWEgive an user interactive environment in a web browser such that each endusers from a web browser is able to select displayed resources and cansubmitting and run one or multiple simultaneous concurrent tasks basedon selected resources within said a web browser for Control system orone or multiple System Units; wherein said web server software creatinga web interface thread for receiving each submitted task, and for eachtask to obtain an associated lock, store each task into a valid entry ofa user space task list, mark said entry status as invalid, and mayprovide initial response to said user space task, release said lock,pass each task to said control management software modules of Targetsystem, and exit; wherein said control manage software creating one ormultiple control manage threads to obtain associated locks anddistribute said each task to be executed on Control system or on one ormultiple System Units until said task finished; wherein upon finishingeach task said control manage threads releasing each task's saidassociated locks and mark corresponding entry status as valid on userspace task list for each task; and upon finish each task said controlmanage thread providing response back to corresponding user's webbrowser, wherein said response could be the status of a task executingor could be a actual result of task executing, or could be a point to alocation of said result; and then exit; wherein, if task is distributedto System Units, said System Units will provide result back to Controlsystem or may be directly back to user's browser.
 13. A method and asystem of providing server software of a Control system toasynchronously response to each task request issued from each user's webbrowser comprises: providing web browser on Control system or on one ormore Console Hosts, wherein from web browser end user can access saidControl system via network; providing server software of said Controlsystem including web server software, and console supporting software ofsaid Control system, wherein said console support software furtherincludes web server interface software modules and control managementsoftware modules; and wherein said Control system may be a standalonesystem and/or or may connect and control one or more System Units, andcollect resource information from System Units via communication betweensaid server software of Control system and services software module ofSystem unit; instructing said server software to send said collectedresources information to and displayed in said one or multiple webbrowser, wherein said resources are on Control system and/or may be onsaid one or more System Units such that each user from said browser canselect said resource and submit and run one or multiple concurrent taskswithin a web browser; instructing said server software of Control systemto obtains associated locks for each tasks, receive and store each saidsubmitted tasks into a valid slot of a user space task list; andinstructing said server software of Control system to distribute saidtasks to be executed in background on Control system an/or may be on oneor multiple System Units until said task is finished and releaseassociated locks and said valid slot of user space task list along withsaid task executing; and instructing said server software providesresponse back to said web browser at any appropriate time independent toactual result of said task along with said task executing, wherein saidresponse could be a status or actual results of task executing, whereinsaid response can be coded with any suitable programming languages suchas HTML, XML, C, C++, Java and so forth; and wherein said Control systemmay collect said response from said System Unit if said task is run onSystem Unit.
 14. The claim 13 further includes: said resourcesinformation of a system include of information of storages, network,file system, file folder, and data files, various devices and so forthon said Control system, and on said one or multiple System Units viasaid network; and further send said resource information are encodedwith HTML, XML, Javascript, and may include nay suitable C, C++, Javaprogramming languages in a form of web page; said encoded web page mayalso include graphic image and operation menu associated with saidresource information or status information;
 15. The claim 13 furtherincludes said Control system, Console system, and System Units, Clientsystem could be a server system such as a web server or a NAS or a videoserver and so forth, a desktop or a laptop system, or various hand-heldcommunication devices such as PDA or cell phone; said web browser areconventional browser on the market or proprietary software, which iscapable to communicate with other software on any system throughcommunication protocol such as web protocols of HTTP and any suitableprotocols; and said network is Internet, Intranet, or LANinfrastructure; and said server software and web browser being organizedand operated to provide a web based computer user work (operating)environment for a single standalone system or for a virtualized systemwith multiple system.
 16. The claim 13 wherein said task furtherincludes: said tasks could be any of the following: moving (accessing)or transmitting data such as a multiple Gig-bytes data file between anytwo locations on a target system or crossing two target systems; whereinsaid target systems can either be said a System or one or multipleSystem Units; configuring entire resources on said a target system;configuring, partitioning, and assigning the entire storage system onsaid a target; setting up authentication of a specific user from aspecific web browser with certain privileges for said target system;setting up authentication for a client to obtain services of said atarget system; monitoring and displaying network, storage, CPU,processes and thread activities and status for said a target system; andcreating and mounting a file system, file and directory structures, andperforming all related data file operations on said a target system; andperforming tasks that are compatible to tasks in a regular nativecomputer user work environment.
 17. The claim 13 further includes: ifsaid task is for one or more System Units, which controlled by Controlsystem, said control manage thread of Control system transmit taskinformation to service software of said one or multiple System Units andsaid task to be executed on said System Units, wherein each System Unitswill create one or more threads to acquire associated locks, executetasks, and provide response to either control manage software of Controlsystem or directly to said web browser after task is finished; whereinsaid response may be a status of task executing or a actual result oftask executing, wherein said status may tell whether the task is successor not, or provide a location of the task result; If task is for saidControl system, said task to be executed on said Control system.
 18. Theclaim 13 further includes: said users may require to login said Controlsystem with permitted user account name and password, or said user maynot be required to login said Control system and have no account andpassword.